package ByteStreaminput;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;

public class Demo2 {
    public static void main(String[] args) throws IOException {
     /*
          字节输入流的细节：
              1.创建字节输入流对象
                    细节1：如果文件不存在，就直接报错。
                    Java为什么会这么设计呢？
                    输出流：不存在，创建
                        把数据写到文件当中

                    输入流：不存在，而是报错呢？
                        因为创建出来的文件是没有数据的，没有任何意义。
                        所以Java就没有设计这种无意义的逻辑，文件不存在直接报错。

                    程序中最重要的是：数据。



              2.写数据
                    细节1：一次读一个字节，读出来的是数据在ASCII上对应的数字
                    细节2：读到文件末尾了，read方法返回-1。

              3.释放资源
                    细节：每次使用完流之后都要释放资源

    */

        FileInputStream fis = new FileInputStream("a.txt");


        int b = 0;
        while ((b=fis.read()) != -1) {
            System.out.print((char)b);
        }

        fis.close();


        System.out.println("---------------------------------");
        FileInputStream fis2 = new FileInputStream("C:\\Users\\86156\\OneDrive\\桌面\\测试.txt");

        int a = 0;
        while((a = fis2.read()) != -1){
            System.out.println((char)a);
        }

        fis2.close();



        /*

        read :表示读取数据，而且是读取一个数据就移动一次指针
        循环读取一次只能出现一次read方法

        FileInputStream fis = new FileInputStream("myio\\a.txt");

        while ((fis.read()) != -1) {
            System.out.println(fis.read());//98  100  -1
        }

        fis.close();

        */

    }
}
